Peer-to-peer networking or computing (often referred to as P2P) may be applied to a wide range of technologies that greatly increase the utilization of information, bandwidth, and computing resources in the Internet. Generally, these peer-to-peer technologies adapt to a network-based computing style that neither excludes nor inherently depends on centralized control points. Apart from improving the performance of information discovery, content delivery, and information processing, such a networked-based computing style can also enhance the overall reliability and fault-tolerance of computing systems.
FIGS. 1A and 1B are examples illustrating a peer-to-peer model. FIG. 1A shows two peer devices 10A and 104B that are connected through network 106. Either of the two peer devices 104 may serve as a client or a server to the other device. FIG. 1B shows several peer devices 104 connected over the network 106 in a peer group. In the peer group, any of the peer devices 104A, 104B, 104C, 104D, 104E, and 104F may serve as a client or a server to any of the other devices.
Peer-to-peer (P2P) networks, as illustrated in FIGS. 1A and 1B, are generally reliable because of their decentralized nature since each peer device may serve as a client or a server. However, P2P networks may suffer from performance difficulties when, for example, one peer device attempts to contact another peer device. This is because P2P networks have very few or no centralized devices directly connected to every peer device. The peer devices as illustrated in FIGS. 1A and 2B are able to discover one another through each other; each peer device plays the role of either a client, or a server, or both. Thus, the response time increases with the number of connected peer devices.
Given the ad-hoc decentralized nature of most P2P networks, the P2P network is susceptible to attacks. A need therefore exist for a mechanism to eliminate such attacks and enable enterprise strength security.